package com.storydo.file.share.utils;

import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.fastjson.JSON;

/**   
* @Title: JsonUtils.java 
* @Description: 封装fastjson
* @author : Storydo
* @date: 2019年7月5日 上午10:53:09 
* @version:V1.0 
* Copyright 悦享互联 2016 All right reserved.
* Modification  History:
* Version       Date          Author          Description
* ----------------------------------------------------------------------------
*  1.0         2019年7月5日        Storydo              TODO
*/
public class JsonUtil {

	private static Logger log = LoggerFactory.getLogger(JsonUtil.class);
	/**
	 * 
	* @Description: 将对象转化为json格式的字符串
	* @param obj
	* @return
	* @author: Storydo
	* @date: 2019年7月5日 下午2:13:48
	 */
	public static String toJson(Object obj) {
		if(Stringer.isNullOrEmpty(obj)) {
			log.error("--------- obj is null");
			return null;
		}
		return JSON.toJSONString(obj);
	}
	
	public static <T> List<T> toList(String json, Class<T> cls){
		if(Stringer.isNullOrEmpty(json)) {
			log.error("--------- Json to List param is null");
			return null;
		}
		return JSON.parseArray(json, cls);
	}
	
	public static Map<String, Object> toMap(String json) {
		if(Stringer.isNullOrEmpty(json)) {
			log.error("--------- Json to Map param is null");
			return null;
		}
		return JSON.parseObject(json);
	}
	
	public static <T> T toBean(String json, Class<T> clazz) {
		if(Stringer.isNullOrEmpty(json)) {
			log.error("--------- Json to Bean param is null");
			return null;
		}
		return JSON.toJavaObject(JSON.parseObject(json), clazz);
	}
}
